home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 5
/
Skunkware 5.iso
/
src
/
X11
/
wais
/
x
/
tcommands.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-09
|
4KB
|
174 lines
/* WIDE AREA INFORMATION SERVER SOFTWARE:
No guarantees or restrictions. See the readme file for the full standard
disclaimer.
This is part of the X user-interface for the WAIS software. Do with it
as you please.
jonathan@Think.COM
*
* $Log: tcommands.c,v $
* Revision 1.6 92/04/28 15:31:18 jonathan
* Cleaned up use of scrollList.
*
* Revision 1.5 92/03/17 14:17:18 jonathan
* Generally cleaned up.
*
*/
#ifndef lint
static char *RCSid = "$Header: /tmp_mnt/net/quake/proj/wais/wais-8-b5/x/RCS/tcommands.c,v 1.6 92/04/28 15:31:18 jonathan Exp $";
#endif
#define _C_TCOMMANDS
#define XWAIS
#include "xwais.h"
static Boolean editting_new_question;
static int last_question = NO_ITEM_SELECTED;
extern int last_source;
int get_selected_question()
{
return(get_selected_item(questionwindow->ListWidget));
}
/* ARGSUSED */
void
EditQuestion(w, closure, call_data)
Widget w;
XtPointer closure, call_data;
{
char msg[STRINGSIZE];
int CurrentQuestion;
double_click = FALSE;
LastClicked = w;
if((CurrentQuestion = get_selected_question())
!= NO_ITEM_SELECTED) {
if (CurrentQuestion == last_question) {
sprintf(msg, "Opening question: %s\n", Question_items[CurrentQuestion]);
XwaisPrintf(msg);
sprintf(msg, "xwaisq \"%s\" &", Question_items[CurrentQuestion]);
system(msg);
}
else last_question = CurrentQuestion;
}
else {
last_question = -1;
if (NumQuestions > 0)
XwaisPrintf("No question selected.\nPlease select one and try again.\n");
else {
XwaisPrintf("Opening new question\n");
system("xwaisq &");
}
}
}
/* ARGSUSED */
void
AddQuestion(w, closure, call_data)
Widget w;
XtPointer closure, call_data;
{
Question new;
double_click = FALSE;
LastClicked = w;
XwaisPrintf("Opening new question\n");
system("xwaisq &");
}
void
DeleteQuestion(w, closure, call_data)
Widget w;
XtPointer closure, call_data;
{
char msg[STRINGSIZE];
int CurrentQuestion;
double_click = FALSE;
LastClicked = w;
if((CurrentQuestion = get_selected_question())
!= NO_ITEM_SELECTED) {
sprintf(msg, "%s%s",
app_resources.questionDirectory,
Question_items[CurrentQuestion]);
if(unlink(msg) != 0)
XwaisPrintf("Error delete Question.\n");
last_question = NO_ITEM_SELECTED;
ScanDirs(NULL, NULL);
}
else
XwaisPrintf("No question selected.\nPlease select one and try again.\n");
}
void
DeleteSource(w, closure, call_data)
Widget w;
XtPointer closure, call_data;
{
char msg[STRINGSIZE];
double_click = FALSE;
LastClicked = w;
if(get_selected_source() != NO_ITEM_SELECTED) {
sprintf(msg, "%s%s",
app_resources.userSourceDirectory,
Source_items[get_selected_source()]);
if (unlink(msg) != 0)
XwaisPrintf("Error deleting source.\n");
else {
last_source = NO_ITEM_SELECTED;
XawListUnhighlight(sourcewindow->ListWidget);
}
}
else
XwaisPrintf("No source selected.\nPlease select one and try again.\n");
}
static Widget helpwindow = NULL;
void EndHelp(w, closure, call_data)
Widget w;
XtPointer closure, call_data;
{
XtPopdown(helpwindow);
}
void XwaisHelp(w, closure, call_data)
Widget w;
XtPointer closure, call_data;
{
Widget textwindow, frame, button;
Arg arglist[10];
Cardinal num_args;
static String items[] = {NULL};
if (helpwindow == NULL) {
num_args = 0;
XtSetArg(arglist[num_args], XtNtitle, "X WAIS Help"); num_args++;
XtSetArg(arglist[num_args], XtNiconName, "X WAIS Help"); num_args++;
helpwindow = XtCreatePopupShell("textpopup", applicationShellWidgetClass,
XtParent(w), arglist, num_args);
frame =
XtCreateManagedWidget("helppopupform", formWidgetClass,
helpwindow, NULL, ZERO);
num_args = 0;
XtSetArg(arglist[num_args], XtNtype, XawAsciiFile); num_args++;
XtSetArg(arglist[num_args], XtNstring, app_resources.helpFile); num_args++;
XtSetArg(arglist[num_args], XtNeditType, XawtextRead); num_args++;
textwindow =
XtCreateManagedWidget("textWindow", asciiTextWidgetClass, frame, arglist, num_args);
button = MakeCommandButton(frame, "tdone", EndHelp, textwindow, NULL, NULL);
SetIcon(helpwindow);
}
XtPopup(helpwindow, XtGrabNone);
}